package com.antler.smt.service.admin;

import com.antler.smt.enums.ResultCodeEnum;
import com.antler.smt.request.base.BasePageReq;
import com.antler.smt.response.admin.GetOrderListResp;
import com.antler.smt.response.admin.GetPurchaserCashCouponListResp;
import com.antler.smt.response.admin.GetPurchaserVipInfoListResp;
import com.antler.smt.response.base.Result;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;

import java.text.ParseException;
import java.util.HashMap;
import java.util.List;


/**
 * 后台vip管理Service
 *
 * @author zhangyi
 * @date 2018/4/19 9:48
 */
public interface ManageVipService {

    /**
     *  整体管理Vip信息列表
     *
     * @param basePageReq 分页实体
     * @param list 状态列表
     * @return
     */
    Result<Page<GetPurchaserVipInfoListResp>> manageVipList(BasePageReq basePageReq,List<Integer> list);

    /**
     * 订单列表
     *
     * @param id
     * @param request 分页实体
     * @return
     */
    Result<PageInfo<GetOrderListResp>> orderCount(Long id, BasePageReq request);

    /**
     *  冻结用户操作
     *
     * @param id
     * @return
     */
    Result<ResultCodeEnum> freeze(Long id,Integer status);

    /**
     * 发放代金券
     *
     * @param id
     * @return
     */
    Result<ResultCodeEnum> provideCashCoupon(Long id,List<Integer> cashLists) throws ParseException;

    /**
     * 获取当前采购商有效代金券的列表
     *
     * @param id
     * @return
     */
    Result<GetPurchaserCashCouponListResp> cashCouponInfo(Long id);

    /**
     * 作废代金券
     *
     * @param cashCouponId
     * @return
     */
    Result<ResultCodeEnum> cancelCashCoupon(Long cashCouponId);

    /**
     * 获取此时的代金券的列表
     *
     * @return
     */
    Result<HashMap<Integer,String>> showCashCoupon();
}
